var arr = ['zansan', 'lisi'];

function foo(obj) {
  obj[0] = 'xiaomin';
  obj = ['lagou'];
  obj[1] = 'qianduan';
  console.log('==>', obj);
}

foo(arr);
console.log('==>', arr);

/**
 * 01函数创建
 * -- 可以将函数名称看做是变量，存放在Vo当中,同时它的值就是当前函数对应的内存地址
 * -- 函数本身也是一个对象，创建时会有一个内存地址，空间内存放的就是函数体代码(字符串形式的)
 * 02函数执行
 * -- 函数执行时会形成个全新私有上下文，它里面有一个A0用于管理这个上下文当中的变量
 * -- 步骤:
 *    01 作用域链<当前执行上下文， 上级作用域所在的执行上下文>
 *    02 确定 this
 *    03 初始化 arguments (对象)
 *    04 形参赋值:它就相当于是变量声明，然后将声明的变量放置于AO
 *    05 变量提升
 *    06 代码执行
 */
